freeslot(
	"MT_ANTON"
)

local function oofercircle(mobj, mobjtype, ns, vertical, vertangle)
	local i = 0	while i < 8
		local fa = (i*(ANGLE_180/4))
		if mobjtype == MT_DUST and mobj.eflags & (MFE_TOUCHWATER|MFE_UNDERWATER)
			mobjtype = MT_SMALLBUBBLE
		end
		local mo = P_SpawnMobj(mobj.x, mobj.y, mobj.z+(mobj.height/2), mobjtype)
		if mo and mo.valid
			mo.scale = mobj.scale
			if mobjtype == MT_DUST
				if mobj.player and
				((mobj.player.powers[pw_shield] & SH_NOSTACK) == SH_ELEMENTAL
				or (mobj.player.powers[pw_shield] & SH_NOSTACK) == SH_FLAMEAURA)
					mo.state = S_SPINDUST_FIRE1
				else
					mo.state = S_SPINDUST1
				end
			end
			if vertical
				mo.momz = FixedMul(sin(fa),ns)
				P_InstaThrust(mo, vertangle+ANGLE_90,
				FixedMul(cos(fa),ns))
			else
				fa = $ + vertangle or 0
				mo.momx = FixedMul(sin(fa),ns)
				mo.momy = FixedMul(cos(fa),ns)
			end
		end
		i = $+1
	end
end

addHook("MobjThinker", function(mo)
	if mo
	and mo.valid
	and mo.health
	and mo.type == MT_ANTON
		if (mo.state == S_ANTONCHARGE)
		S_StartSound(mo, sfx_3db16)
		for i = 1, 6
				local dust = P_SpawnMobj(mo.x, mo.y, mo.z, MT_SPINDUST)
				dust.angle = ANG60*i
				P_InstaThrust(dust, dust.angle, 15*FRACUNIT)
			end
		end
	end
end, MT_ANTON)